package edu.pe.cayetano.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import edu.pe.cayetano.framework.Configuration;
import edu.pe.cayetano.framework.DAOException;
import edu.pe.cayetano.model.to.EspecialidadTO;

public class EspecialidadDAO  extends BaseDAO{

	public EspecialidadDAO(Connection cnx) {
		super(cnx);
	}
	
	/**
	 * Metodo que retorna el listado de especialidades
	 * */
	public ArrayList<EspecialidadTO>  getEspecialidadesxSede(String codigo) throws Exception{

		EspecialidadTO	especialidadTO	 	= null;
		ArrayList<EspecialidadTO>   			lista		 		= new ArrayList<EspecialidadTO> ();
		PreparedStatement   pstmt 		 		= null;
		ResultSet 			rs 			 		= null;
		String 				schema		 		= Configuration.getSchemaDB();
	
		try{
				StringBuffer query  = new StringBuffer();
				query.append("SELECT ESPECIALIDAD_ID,NOMBRE FROM "+schema+"ESPECIALIDAD WHERE SEDE_ID=?");
				pstmt = getConnection().prepareStatement(query.toString());
				pstmt.setString(1,codigo);
				rs=pstmt.executeQuery();		
				
				especialidadTO=new EspecialidadTO();
				especialidadTO.setCodigo(0);
				especialidadTO.setNombre("");
				lista.add(especialidadTO);
				
				while(rs.next()){
					especialidadTO=new EspecialidadTO();
					especialidadTO.setCodigo(rs.getInt(1));
					especialidadTO.setNombre(rs.getString(2));
					lista.add(especialidadTO);
				}
			}catch(Exception e){
				throw new DAOException(e.getMessage());
			}finally{
				try{
					try{pstmt.close();}catch(Exception e){}
					try{rs.close();}catch(Exception e){}
				}catch(Exception e1){}
			}
		return lista;
	}
	
	/**
	 * Metodo que retorna el listado de especialidades para el modulo de citas
	 * */
	public ArrayList<EspecialidadTO>  getEspecialidadesxSedexCita(String codigo) throws Exception{

		EspecialidadTO	especialidadTO	 	= null;
		ArrayList<EspecialidadTO>   			lista		 		= new ArrayList<EspecialidadTO> ();
		PreparedStatement   pstmt 		 		= null;
		ResultSet 			rs 			 		= null;
		String 				schema		 		= Configuration.getSchemaDB();
	
		try{
				StringBuffer query  = new StringBuffer();
				query.append("SELECT ESPECIALIDAD_ID,NOMBRE FROM "+schema+"ESPECIALIDAD WHERE SEDE_ID=? AND HABILITADO_CITA='1'");
				pstmt = getConnection().prepareStatement(query.toString());
				pstmt.setString(1,codigo);
				rs=pstmt.executeQuery();		
				
				especialidadTO=new EspecialidadTO();
				especialidadTO.setCodigo(0);
				especialidadTO.setNombre("");
				lista.add(especialidadTO);
				
				while(rs.next()){
					especialidadTO=new EspecialidadTO();
					especialidadTO.setCodigo(rs.getInt(1));
					especialidadTO.setNombre(rs.getString(2));
					lista.add(especialidadTO);
				}
			}catch(Exception e){
				throw new DAOException(e.getMessage());
			}finally{
				try{
					try{pstmt.close();}catch(Exception e){}
					try{rs.close();}catch(Exception e){}
				}catch(Exception e1){}
			}
		return lista;
	}
}
